Two-dimensional identification (2DID) codes, such as quick response (QR) codes and GS1 DataMatrix (DM) codes, are types of a matrix barcode that is widely used for product tracking and providing a variety of information. QR codes include filled darkened squares (black squares) arranged within a square grid on a light background and are suitable for high-speed acquisition by an imaging device, such as a camera. In these codes, each square represents a data point. Typical square grid patterns range from 11 to 177 squares per row or column. Patterns in the horizontal and the vertical components of the acquired image can reveal or activate the coded information, such as for commercial tracking, entertainment and transport ticketing, product labeling, product marketing, mobile phone tagging, couponing, displaying text, adding vCard contact information, opening an URL or URI, or composing email or text messages. The QR code is covered by an ISO standard, and its use is license free. QR code generating websites and apps are widely available so users can generate and print their own QR codes for others to scan. (See http://en.wikipedia.org/wiki/QR_code.) An exemplary QR code is shown in FIG. 1.
GS1 DataMatrix codes are also covered by several ISO and IEC standards (such as 15424 and 15459) and are license free for many applications. See http://en.wikipedia.org/wiki/Data_Matrix. GS1 DataMatrix code-generating resources are also widely available. An exemplary GS1 DataMatrix code generated using http://datamatrix.kaywa.com is shown in FIG. 2.
Methods exist for marking these DM or 2DID codes on various materials and in many different sizes, wherein the entire pattern of the 2DID code is larger than 500 microns (μm). For example, some 2DID codes can be printed on labels using traditional print technology, engraved into metal, and carved into tombstones.
Optical code readers are available for reading such optical codes from the exterior surfaces that support them. The encoding and decoding schemes are generally robust and include embedded cyclic redundancy check (CRC) error correction to ensure data integrity, for accurately printed codes. For example, international standards for encoding and decoding certain types of these 2DID codes can be found at http://www.gsl.org/docs/gsmp/barcodes/GS1_General_Specifications.pdf. However, if the 2DID codes contain printing errors or inconsistencies, the 2DID codes may be much more difficult, if not impossible, to decode.